A distributed system is a software system in which components located on networked computers communicate and coordinate their actions by passing messages. The components interact with each other in order to achieve a common goal.
Use of a distributed system to perform distributed processing provides many benefits in that distributed processing can efficiently combine and utilize processing resources at a variety of locations to quickly solve large and/or complicated problems. In one example of this, a group of networked computers may be controlled by a group of users. However, as normal use of a computer does not always use the computer's entire processing capacity, each of the computers in this group of computers may have some latent, or unused processing capacity. This latent or unused processing capacity can be identified and combined together to solve another problem. Thus, use of the processing capacity of the computers of the group of computers is maximized, which maximization can lead to significant infrastructure savings associated with acquisition of otherwise needed processing capacity.
However, distributed processing still has many shortcomings which limit its usefulness. Thus, new methods, techniques, and systems are required to improve distributed processing.